#ifndef _DSWPARAM_H
#define _DSWPARAM_H

#include "base.h"
#include "appver.h"

const char defCfg[] = "<Message>\r\n\
<NET>\r\n\
<BASIC>\r\n\
<PUAID>AX-MUL-2011033100075</PUAID>\r\n\
<PUATYPE>10</PUATYPE>\r\n\
<CENTER_SVR>www.isee119.com</CENTER_SVR>\r\n\
<CENTER_PORT>7000</CENTER_PORT>\r\n\
</BASIC>\r\n\
<ETH>\r\n\
<TYPE>1</TYPE>\r\n\
<IP>192.168.1.10</IP>\r\n\
<MASK>255.255.255.0</MASK>\r\n\
<MAC>00:60:6E:7C:2E:1B</MAC>\r\n\
<GATE>192.168.1.1</GATE>\r\n\
<DNSTYPE>1</DNSTYPE>\r\n\
<MDNS>192.168.1.1</MDNS>\r\n\
<SDNS>192.168.1.1</SDNS>\r\n\
</ETH>\r\n\
<PPPOE>\r\n\
<EN_PPPOE>0</EN_PPPOE>\r\n\
<USER></USER>\r\n\
<PASSW></PASSW>\r\n\
</PPPOE>\r\n\
<WIFI>\r\n\
<APMAC></APMAC>\r\n\
<SSID></SSID>\r\n\
<SECURITY>0</SECURITY>\r\n\
<PASSW></PASSW>\r\n\
<NETTYPE>0</NETTYPE>\r\n\
<IP></IP>\r\n\
<MASK></MASK>\r\n\
<GW></GW>\r\n\
</WIFI>\r\n\
</NET>\r\n\
<MEDIA>\r\n\
<CH0>\r\n\
<OSD>\r\n\
<EN_OSD>1</EN_OSD>\r\n\
<TEXT>CH0</TEXT>\r\n\
</OSD>\r\n\
<VIDEO>\r\n\
<TYPE>0</TYPE>\r\n\
<SUB0_STREAM>\r\n\
<SIZE>0</SIZE>\r\n\
<FPS>25</FPS>\r\n\
<BITS>512</BITS>\r\n\
<GOP>50</GOP>\r\n\
<QUALITY>1</QUALITY>\r\n\
</SUB0_STREAM>\r\n\
<SUB1_STREAM>\r\n\
<SIZE>1</SIZE>\r\n\
<FPS>15</FPS>\r\n\
<BITS>192</BITS>\r\n\
<GOP>30</GOP>\r\n\
<QUALITY>1</QUALITY>\r\n\
</SUB1_STREAM>\r\n\
<SUB2_STREAM>\r\n\
<SIZE>2</SIZE>\r\n\
<FPS>25</FPS>\r\n\
<BITS>1024</BITS>\r\n\
<GOP>50</GOP>\r\n\
<QUALITY>1</QUALITY>\r\n\
</SUB2_STREAM>\r\n\
</VIDEO>\r\n\
<CH0_LOCATION></CH0_LOCATION>\r\n\
</CH0>\r\n\
<CH1>\r\n\
<OSD>\r\n\
<EN_OSD>1</EN_OSD>\r\n\
<TEXT>CH1</TEXT>\r\n\
</OSD>\r\n\
<VIDEO>\r\n\
<TYPE>0</TYPE>\r\n\
<SUB0_STREAM>\r\n\
<SIZE>0</SIZE>\r\n\
<FPS>25</FPS>\r\n\
<BITS>512</BITS>\r\n\
<GOP>50</GOP>\r\n\
<QUALITY>1</QUALITY>\r\n\
</SUB0_STREAM>\r\n\
<SUB1_STREAM>\r\n\
<SIZE>1</SIZE>\r\n\
<FPS>15</FPS>\r\n\
<BITS>192</BITS>\r\n\
<GOP>30</GOP>\r\n\
<QUALITY>1</QUALITY>\r\n\
</SUB1_STREAM>\r\n\
<SUB2_STREAM>\r\n\
<SIZE>2</SIZE>\r\n\
<FPS>25</FPS>\r\n\
<BITS>1024</BITS>\r\n\
<GOP>50</GOP>\r\n\
<QUALITY>1</QUALITY>\r\n\
</SUB2_STREAM>\r\n\
</VIDEO>\r\n\
<CH1_LOCATION></CH1_LOCATION>\r\n\
</CH1>\r\n\
<CH2>\r\n\
<OSD>\r\n\
<EN_OSD>1</EN_OSD>\r\n\
<TEXT>CH2</TEXT>\r\n\
</OSD>\r\n\
<VIDEO>\r\n\
<TYPE>0</TYPE>\r\n\
<SUB0_STREAM>\r\n\
<SIZE>0</SIZE>\r\n\
<FPS>25</FPS>\r\n\
<BITS>512</BITS>\r\n\
<GOP>50</GOP>\r\n\
<QUALITY>1</QUALITY>\r\n\
</SUB0_STREAM>\r\n\
<SUB1_STREAM>\r\n\
<SIZE>1</SIZE>\r\n\
<FPS>15</FPS>\r\n\
<BITS>192</BITS>\r\n\
<GOP>30</GOP>\r\n\
<QUALITY>1</QUALITY>\r\n\
</SUB1_STREAM>\r\n\
<SUB2_STREAM>\r\n\
<SIZE>2</SIZE>\r\n\
<FPS>25</FPS>\r\n\
<BITS>1024</BITS>\r\n\
<GOP>50</GOP>\r\n\
<QUALITY>1</QUALITY>\r\n\
</SUB2_STREAM>\r\n\
</VIDEO>\r\n\
<CH2_LOCATION></CH2_LOCATION>\r\n\
</CH2>\r\n\
<CH3>\r\n\
<OSD>\r\n\
<EN_OSD>1</EN_OSD>\r\n\
<TEXT>CH3</TEXT>\r\n\
</OSD>\r\n\
<VIDEO>\r\n\
<TYPE>0</TYPE>\r\n\
<SUB0_STREAM>\r\n\
<SIZE>0</SIZE>\r\n\
<FPS>25</FPS>\r\n\
<BITS>512</BITS>\r\n\
<GOP>50</GOP>\r\n\
<QUALITY>1</QUALITY>\r\n\
</SUB0_STREAM>\r\n\
<SUB1_STREAM>\r\n\
<SIZE>1</SIZE>\r\n\
<FPS>15</FPS>\r\n\
<BITS>192</BITS>\r\n\
<GOP>30</GOP>\r\n\
<QUALITY>1</QUALITY>\r\n\
</SUB1_STREAM>\r\n\
<SUB2_STREAM>\r\n\
<SIZE>2</SIZE>\r\n\
<FPS>25</FPS>\r\n\
<BITS>1024</BITS>\r\n\
<GOP>50</GOP>\r\n\
<QUALITY>1</QUALITY>\r\n\
</SUB2_STREAM>\r\n\
</VIDEO>\r\n\
<CH3_LOCATION></CH3_LOCATION>\r\n\
</CH3>\r\n\
<CH4>\r\n\
<OSD>\r\n\
<EN_OSD>1</EN_OSD>\r\n\
<TEXT>CH4</TEXT>\r\n\
</OSD>\r\n\
<VIDEO>\r\n\
<TYPE>0</TYPE>\r\n\
<SUB0_STREAM>\r\n\
<SIZE>1</SIZE>\r\n\
<FPS>25</FPS>\r\n\
<BITS>512</BITS>\r\n\
<GOP>50</GOP>\r\n\
<QUALITY>1</QUALITY>\r\n\
</SUB0_STREAM>\r\n\
<SUB1_STREAM>\r\n\
<SIZE>1</SIZE>\r\n\
<FPS>15</FPS>\r\n\
<BITS>192</BITS>\r\n\
<GOP>30</GOP>\r\n\
<QUALITY>1</QUALITY>\r\n\
</SUB1_STREAM>\r\n\
<SUB2_STREAM>\r\n\
<SIZE>2</SIZE>\r\n\
<FPS>25</FPS>\r\n\
<BITS>1024</BITS>\r\n\
<GOP>50</GOP>\r\n\
<QUALITY>1</QUALITY>\r\n\
</SUB2_STREAM>\r\n\
</VIDEO>\r\n\
<CH4_LOCATION></CH4_LOCATION>\r\n\
</CH4>\r\n\
<CH5>\r\n\
<OSD>\r\n\
<EN_OSD>1</EN_OSD>\r\n\
<TEXT>CH5</TEXT>\r\n\
</OSD>\r\n\
<VIDEO>\r\n\
<TYPE>0</TYPE>\r\n\
<SUB0_STREAM>\r\n\
<SIZE>1</SIZE>\r\n\
<FPS>25</FPS>\r\n\
<BITS>512</BITS>\r\n\
<GOP>50</GOP>\r\n\
<QUALITY>1</QUALITY>\r\n\
</SUB0_STREAM>\r\n\
<SUB1_STREAM>\r\n\
<SIZE>1</SIZE>\r\n\
<FPS>15</FPS>\r\n\
<BITS>192</BITS>\r\n\
<GOP>30</GOP>\r\n\
<QUALITY>1</QUALITY>\r\n\
</SUB1_STREAM>\r\n\
<SUB2_STREAM>\r\n\
<SIZE>2</SIZE>\r\n\
<FPS>25</FPS>\r\n\
<BITS>1024</BITS>\r\n\
<GOP>50</GOP>\r\n\
<QUALITY>1</QUALITY>\r\n\
</SUB2_STREAM>\r\n\
</VIDEO>\r\n\
<CH5_LOCATION></CH5_LOCATION>\r\n\
</CH5>\r\n\
<CH6>\r\n\
<OSD>\r\n\
<EN_OSD>1</EN_OSD>\r\n\
<TEXT>CH6</TEXT>\r\n\
</OSD>\r\n\
<VIDEO>\r\n\
<TYPE>0</TYPE>\r\n\
<SUB0_STREAM>\r\n\
<SIZE>1</SIZE>\r\n\
<FPS>25</FPS>\r\n\
<BITS>512</BITS>\r\n\
<GOP>50</GOP>\r\n\
<QUALITY>1</QUALITY>\r\n\
</SUB0_STREAM>\r\n\
<SUB1_STREAM>\r\n\
<SIZE>1</SIZE>\r\n\
<FPS>15</FPS>\r\n\
<BITS>192</BITS>\r\n\
<GOP>30</GOP>\r\n\
<QUALITY>1</QUALITY>\r\n\
</SUB1_STREAM>\r\n\
<SUB2_STREAM>\r\n\
<SIZE>2</SIZE>\r\n\
<FPS>25</FPS>\r\n\
<BITS>1024</BITS>\r\n\
<GOP>50</GOP>\r\n\
<QUALITY>1</QUALITY>\r\n\
</SUB2_STREAM>\r\n\
</VIDEO>\r\n\
<CH6_LOCATION></CH6_LOCATION>\r\n\
</CH6>\r\n\
<CH7>\r\n\
<OSD>\r\n\
<EN_OSD>1</EN_OSD>\r\n\
<TEXT>CH7</TEXT>\r\n\
</OSD>\r\n\
<VIDEO>\r\n\
<TYPE>0</TYPE>\r\n\
<SUB0_STREAM>\r\n\
<SIZE>1</SIZE>\r\n\
<FPS>25</FPS>\r\n\
<BITS>512</BITS>\r\n\
<GOP>50</GOP>\r\n\
<QUALITY>1</QUALITY>\r\n\
</SUB0_STREAM>\r\n\
<SUB1_STREAM>\r\n\
<SIZE>1</SIZE>\r\n\
<FPS>15</FPS>\r\n\
<BITS>192</BITS>\r\n\
<GOP>30</GOP>\r\n\
<QUALITY>1</QUALITY>\r\n\
</SUB1_STREAM>\r\n\
<SUB2_STREAM>\r\n\
<SIZE>2</SIZE>\r\n\
<FPS>25</FPS>\r\n\
<BITS>1024</BITS>\r\n\
<GOP>50</GOP>\r\n\
<QUALITY>1</QUALITY>\r\n\
</SUB2_STREAM>\r\n\
</VIDEO>\r\n\
<CH7_LOCATION></CH7_LOCATION>\r\n\
</CH7>\r\n\
<AUDIO>\r\n\
<CHANNEL>0</CHANNEL>\r\n\
<TYPE>0</TYPE>\r\n\
<RATE>8000</RATE>\r\n\
<SIZE>16</SIZE>\r\n\
</AUDIO>\r\n\
</MEDIA>\r\n\
<SYSTEM>\r\n\
<ALARM>\r\n\
<EN_ALARM>0</EN_ALARM>\r\n\
<ALARM_PRE_TIME>3</ALARM_PRE_TIME>\r\n\
<ALARM_REC_TIME>15</ALARM_REC_TIME>\r\n\
<INTERVAL>60</INTERVAL>\r\n\
</ALARM>\r\n\
<ARE_CONFIG>\r\n\
<ARE_COUNT>12</ARE_COUNT>\r\n\
<ARE>\r\n\
<ID>0</ID>\r\n\
<NAME>LINE_0</NAME>\r\n\
<ACTION>49158</ACTION>\r\n\
<TM>0</TM>\r\n\
<BINDV>1</BINDV>\r\n\
<TYPE>7</TYPE>\r\n\
<PTC>0</PTC>\r\n\
<PTV>1</PTV>\r\n\
</ARE>\r\n\
<ARE>\r\n\
<ID>1</ID>\r\n\
<NAME>LINE_1</NAME>\r\n\
<ACTION>49158</ACTION>\r\n\
<TM>0</TM>\r\n\
<BINDV>1</BINDV>\r\n\
<TYPE>1</TYPE>\r\n\
<PTC>0</PTC>\r\n\
<PTV>1</PTV>\r\n\
</ARE>\r\n\
<ARE>\r\n\
<ID>2</ID>\r\n\
<NAME>LINE_2</NAME>\r\n\
<ACTION>49158</ACTION>\r\n\
<TM>0</TM>\r\n\
<BINDV>1</BINDV>\r\n\
<TYPE>1</TYPE>\r\n\
<PTC>0</PTC>\r\n\
<PTV>1</PTV>\r\n\
</ARE>\r\n\
<ARE>\r\n\
<ID>3</ID>\r\n\
<NAME>LINE_3</NAME>\r\n\
<ACTION>49158</ACTION>\r\n\
<TM>0</TM>\r\n\
<BINDV>1</BINDV>\r\n\
<TYPE>1</TYPE>\r\n\
<PTC>0</PTC>\r\n\
<PTV>1</PTV>\r\n\
</ARE>\r\n\
<ARE>\r\n\
<ID>4</ID>\r\n\
<NAME>LINE_4</NAME>\r\n\
<ACTION>49158</ACTION>\r\n\
<TM>0</TM>\r\n\
<BINDV>1</BINDV>\r\n\
<TYPE>1</TYPE>\r\n\
<PTC>0</PTC>\r\n\
<PTV>1</PTV>\r\n\
</ARE>\r\n\
<ARE>\r\n\
<ID>5</ID>\r\n\
<NAME>LINE_5</NAME>\r\n\
<ACTION>49158</ACTION>\r\n\
<TM>0</TM>\r\n\
<BINDV>1</BINDV>\r\n\
<TYPE>1</TYPE>\r\n\
<PTC>0</PTC>\r\n\
<PTV>1</PTV>\r\n\
</ARE>\r\n\
<ARE>\r\n\
<ID>6</ID>\r\n\
<NAME>LINE_6</NAME>\r\n\
<ACTION>49158</ACTION>\r\n\
<TM>0</TM>\r\n\
<BINDV>1</BINDV>\r\n\
<TYPE>1</TYPE>\r\n\
<PTC>0</PTC>\r\n\
<PTV>1</PTV>\r\n\
</ARE>\r\n\
<ARE>\r\n\
<ID>7</ID>\r\n\
<NAME>LINE_7</NAME>\r\n\
<ACTION>49158</ACTION>\r\n\
<TM>0</TM>\r\n\
<BINDV>1</BINDV>\r\n\
<TYPE>1</TYPE>\r\n\
<PTC>0</PTC>\r\n\
<PTV>1</PTV>\r\n\
</ARE>\r\n\
<ARE>\r\n\
<ID>8</ID>\r\n\
<NAME>LINE_8</NAME>\r\n\
<ACTION>49158</ACTION>\r\n\
<TM>0</TM>\r\n\
<BINDV>1</BINDV>\r\n\
<TYPE>5</TYPE>\r\n\
<PTC>0</PTC>\r\n\
<PTV>1</PTV>\r\n\
</ARE>\r\n\
<ARE>\r\n\
<ID>9</ID>\r\n\
<NAME>LINE_9</NAME>\r\n\
<ACTION>49158</ACTION>\r\n\
<TM>0</TM>\r\n\
<BINDV>1</BINDV>\r\n\
<TYPE>9</TYPE>\r\n\
<PTC>0</PTC>\r\n\
<PTV>1</PTV>\r\n\
</ARE>\r\n\
<ARE>\r\n\
<ID>10</ID>\r\n\
<NAME>LINE_10</NAME>\r\n\
<ACTION>49158</ACTION>\r\n\
<TM>0</TM>\r\n\
<BINDV>1</BINDV>\r\n\
<TYPE>10</TYPE>\r\n\
<PTC>0</PTC>\r\n\
<PTV>1</PTV>\r\n\
</ARE>\r\n\
<ARE>\r\n\
<ID>11</ID>\r\n\
<NAME>ACDC</NAME>\r\n\
<ACTION>49158</ACTION>\r\n\
<TM>0</TM>\r\n\
<BINDV>1</BINDV>\r\n\
<TYPE>11</TYPE>\r\n\
<PTC>0</PTC>\r\n\
<PTV>1</PTV>\r\n\
</ARE>\r\n\
</ARE_CONFIG>\r\n\
<LOCATION>\r\n\
<DEV_LOCATION></DEV_LOCATION>\r\n\
</LOCATION>\r\n\
<PTZADDRBTL>\r\n\
<CONSOLE BTL=\"2400\" DT=\"8\" ST=\"1\" JY=\"N\" />\r\n\
<VIDEO_ADDR CH=\"0\" ADDR=\"1\" />\r\n\
<VIDEO_ADDR CH=\"1\" ADDR=\"2\" />\r\n\
<VIDEO_ADDR CH=\"2\" ADDR=\"3\" />\r\n\
<VIDEO_ADDR CH=\"3\" ADDR=\"4\" />\r\n\
<VIDEO_ADDR CH=\"4\" ADDR=\"5\" />\r\n\
<VIDEO_ADDR CH=\"5\" ADDR=\"6\" />\r\n\
<VIDEO_ADDR CH=\"6\" ADDR=\"7\" />\r\n\
<VIDEO_ADDR CH=\"7\" ADDR=\"8\" />\r\n\
</PTZADDRBTL>\r\n\
</SYSTEM>\r\n\
<TELBOARD>\r\n\
<ALARMPHONE>\r\n\
<PHONE></PHONE>\r\n\
<PHONE></PHONE>\r\n\
<PHONE></PHONE>\r\n\
<PHONE></PHONE>\r\n\
<PHONE></PHONE>\r\n\
<PHONE></PHONE>\r\n\
</ALARMPHONE>\r\n\
<USERPASSW>0808</USERPASSW>\r\n\
<OPPASSW>1234</OPPASSW>\r\n\
<PICKUPCOUNT>6</PICKUPCOUNT>\r\n\
<ALARMSPK>1</ALARMSPK>\r\n\
<ALARMSPK_TIME>10</ALARMSPK_TIME>\r\n\
<ARMED_DELAY>100</ARMED_DELAY>\r\n\
<ENTER_DELAY>0</ENTER_DELAY>\r\n\
<DIALTIMES>3</DIALTIMES>\r\n\
</TELBOARD>\r\n\
</Message>";

class CDswparam
{
public:
	CDswparam(LPST_ENV_T pEnv);
	virtual ~CDswparam();
private:
	void LoadAllParam();
	void ReadParam(EN_MSG_TYPE ntype, LPUN_PARAM_T pParam);
public:
	void WriteParam(EN_MSG_TYPE ntype, LPUN_PARAM_T pParam);
	void DefaultParam();

	LPST_DEVICE_BASE GetBasicParam(){return &m_nParam.nBaseParam;};
	LPST_LAN_PARAM GetLanParam(){return &m_nParam.nLanParam;};
	LPST_WIFI_PARAM GetWIFIParam(){return &m_nParam.nWifiParam;};
	LPST_PPPOE_PARAM GetPPPOEParam(){return &m_nParam.nPppoeParam;};
	LPST_CH_PARAM GetChParam(int ch_num){return &m_nParam.nChParam[ch_num];};
	LPST_CH_VIDEOPARAM GetChVideoParam(){return &m_nParam.nChVideoParam;};
	LPST_AUDIO_PARAM GetAudioParam(){return &m_nParam.nAudioParam;};
	LPST_ALARM_PARAM GetAlarmParam(){return &m_nParam.nAlarm;};
	LPST_AUTO_LIST GetAuto(){return &m_nParam.nAuto;};
	LPST_ARE_PARAM GetAreParam(){return &m_nParam.nAre;};
	LPST_LOCATION_PARAM GetLoactionParam(){return &m_nParam.nLocation;};
	LPST_TELBOARD_PARAM GetTelboardParam(){return &m_nParam.nTelboardParam;};
	LPST_SL_CONFIG GetSLConfigParam(){return &m_nParam.nSlConfig;};
	LPST_LD_CAMS_T GetLdCamsParam(){return &m_nParam.nLdcams;};
	LPST_EXTERNAL_CAMS_T GetExternalCamsParam(){return &m_nParam.nExtCams;};
	LPST_PTZADDRBTL_T GetPTZADDRBTLParam(){return &m_nParam.nPTZADDRBTLParam;};
	char* GetOSVer(){return m_sOsVer;};
	char* GetAppVer(){return (char*)APPVER;};

	static void cbSetPagLink(void* pXml, void* pCaller){((CDswparam*)pCaller)->SetPagLink(pXml);};
	static void cbSetNetInfo(void* pXml, void* pCaller){((CDswparam*)pCaller)->SetNetInfo(pXml);};
	static void cbSetWifiInfo(void* pXml, void* pCaller){((CDswparam*)pCaller)->SetWifiInfo(pXml);};
	static void cbSetPppoe(void* pXml, void* pCaller){((CDswparam*)pCaller)->SetPppoe(pXml);};
	static void cbSetVideoInfo(void* pXml, void* pCaller){((CDswparam*)pCaller)->SetVideoInfo(pXml);};
	static void cbSetVideoParamInfo(void* pXml, void* pCaller){((CDswparam*)pCaller)->SetVideoParamInfo(pXml);};
	static void cbSetAudioInfo(void* pXml, void* pCaller){((CDswparam*)pCaller)->SetAudioInfo(pXml);};
	static void cbSetAlarmInfo(void* pXml, void* pCaller){((CDswparam*)pCaller)->SetAlarmInfo(pXml);};
	static void cbSetAuto(void* pXml, void* pCaller){((CDswparam*)pCaller)->SetAuto(pXml);};
	static void cbSetAreCfg(void* pXml, void* pCaller){((CDswparam*)pCaller)->SetAreCfg(pXml);};
	static void cbSetLocate(void* pXml, void* pCaller){((CDswparam*)pCaller)->SetLocate(pXml);};
	static void cbSetTelBoard(void* pXml, void* pCaller){((CDswparam*)pCaller)->SetTelBoard(pXml);};
	static void cbSetSLConfig(void* pXml, void* pCaller){((CDswparam*)pCaller)->SetSLConfig(pXml);};
	static void cbSetFactory(void* pXml, void* pCaller){((CDswparam*)pCaller)->SetFactory(pXml);};
	static void cbSetLdCams(void* pXml, void* pCaller){((CDswparam*)pCaller)->SetLdCams(pXml);};
	static void cbSetExternalCams(void* pXml, void* pCaller){((CDswparam*)pCaller)->SetExternalCams(pXml);};
	static void cbSetPTZADDRBTLParam(void* pXml, void* pCaller){((CDswparam*)pCaller)->SetPTZADDRBTLParam(pXml);};

private:
	void MakeOsVer();
	
	void SetPagLink(void* pXml);
	void SetNetInfo(void* pXml );
	void SetWifiInfo(void* pXml );
	void SetPppoe(void* pXml );
	void SetLocate(void* pXml);
	void SetVideoInfo(void* pXml);
	void SetVideoParamInfo(void* pXml);
	void SetAudioInfo(void* pXml);
	void SetAlarmInfo(void* pXml);
	void SetAuto(void* pXml);
	void SetAreCfg(void* pXml);
	void SetTelBoard(void* pXml);
	void SetSLConfig(void* pXml);
	void SetFactory(void* pXml);
	void SetLdCams(void* pXml);
	void SetExternalCams(void* pXml);
	void SetPTZADDRBTLParam(void* pXml);
private:
	LPST_ENV_T m_pEnv;
	pthread_mutex_t m_lock;
	ST_PARAM_T m_nParam;
	char m_sOsVer[128];
};

#endif

